$(function() {

    initPromotionTable();

    sys.daterangepicker({
        id : 'promotionDate',
        type : 'datetime',
        // startDate: moment().subtract(2, "days"), //当前时间减去一天时间
        maxDate : '2099-12-31 23:59:59'
    });
    $("#promotionDate").val("");

    // 查询
    $('#btnQuery').on('click', function() {
        sys.reloadTable('promotionTable');
    });
    
    /**
	 * 键盘点击事件，回车键，执行搜索
	 */
	$("input").bind('keypress', function(event) {
		if (event.keyCode == "13") {
			sys.reloadTable('promotionTable');
		}
	});
    
    var currentTime = $("#systemTime").val();
    if(!currentTime) {
        try {
            $.ajax({
                type:'post',
                url: rootPath + "/promotion/systemTime",
                async : false,
                success: function(datetime) {
                    $("#systemTime").val(datetime);
                }
            });
        } catch (e) {
            $("#systemTime").val(new Date().getTime());
        }
    }

    sys.selectpicker({
        id : 'promotionType', // select的id
        url : rootPath + "/dict/listKeyMapEntites", // 请求数据的远程地址
        param : {
            keyType : 'promotionType'
        }, // 过滤参数
        // defaultValue:{},
        valueField : 'keyValue',
        textField : 'keyIntro'
    });

    // 清空
    $('#btnClear').on('click', function() {
        $("#promoSearchForm").find("#promotionStatus").val("");
        $("#promoSearchForm").find("#promotionType").val("");
        $("#promoSearchForm").find("input[type='text']").val("");
    });

    $('#btnAdd').on('click', function() {
        window.location.href = rootPath + '/promotion/toAddPromotion';
    });
});

/**
 * 初始化活动列表
 * 
 * @Description do-something
 * @author xu_cc
 * @date 创建时间：2017年9月28日 上午9:25:58
 */
function initPromotionTable() {
    // 定义列
    var columns = [ {
        field : 'no',
        title : '序号',
        align : 'center',
        valign : 'middle',
        formatter : function(value, row, index) {
            var options = $("#promotionTable").bootstrapTable("getOptions");
            return options.pageSize * (options.pageNumber - 1) + index + 1;
        }
    }, {
        field : 'id',
        visible : false
    }, {
        field : 'promotionCode',
        title : '活动编码',
        valign : 'middle',
        align : 'center'
    }, {
        field : 'promotionType',
        title : '活动类型',
        align : 'center',
        valign : 'middle',
        formatter : function(value, row, index) {
            if (value == '1') {
                // return "满减";
                return '<img src="' + rootPath + '/statics/images/rule_1.png" width="20px" height="20px">&nbsp;满减';
            } else if (value == '2') {
                // return "满赠";
                return '<img src="' + rootPath + '/statics/images/rule_2.png" width="20px" height="20px">&nbsp;满赠';
            } else if (value == '3') {
                // return "折扣";
                return '<img src="' + rootPath + '/statics/images/rule_3.png" width="20px" height="20px">&nbsp;折扣';
            } else {
                return value;
            }
        }
    }, {
        field : 'promotionName',
        title : '活动名称',
        valign : 'middle',
        align : 'center'
    }, {
        field : 'promotionTitle',
        title : '活动标题',
        valign : 'middle',
        align : 'center'
    }, {
        field : 'beginTime',
        title : '开始时间',
        align : 'center',
        valign : 'middle',
        formatter : function(value, row, index) {
            return formatDateTime(value, row, index);
        }
    }, {
        field : 'endTime',
        title : '结束时间',
        align : 'center',
        valign : 'middle',
        formatter : function(value, row, index) {
            return formatDateTime(value, row, index);
        }
    }, {
        field : 'status',
        title : '状态',
        valign : 'middle',
        align : 'center',
        formatter : function(value, row, index) {
            return formatStatus(value, row, index);
        }
    }, {
        field : '#',
        title : '操作',
        align : 'left',
        valign : 'middle',
        formatter : function(value, row, index) {
            return formatBtn(value, row, index);
        }
    } ];

    // 定义查询回调函数（查询参数在此设置）
    var queryParams = function(params) {

        var promotionCode = $("#promotionCode").val();
        var promotionType = $("#promotionType").val();
        var promotionName = $("#promotionName").val();
        var promotionDate = $("#promotionDate").val();
        var promotionStatus = $("#promotionStatus").val();

        return {
            rows : params.limit, // 页面大小
            page : params.pageNumber, // 页码
            promotionCode : promotionCode,
            promotionType : promotionType,
            promotionName : promotionName,
            promotionDate : promotionDate,
            status : promotionStatus
        };
    };

    var url = rootPath + "/promotion/listPromotionPage"; // 请求json数据的服务器地址
    sys.initTable('promotionTable', {
        url : url,
        queryParams : queryParams,
        columns : columns,
        striped : true,
        pagination: true,
        clickToSelect : true
    });
}

/**
 * 格式化操作按钮（结合活动时间与状态）
 * 
 * @Description do-something
 * @author xu_cc
 * @date 创建时间：2017年10月9日 下午5:31:11
 * @param value
 * @param row
 * @param index
 * @returns {String}
 */
function formatBtn(value, row, index) {
    var currentTime = $("#systemTime").val();
    var beginTime = row.beginTime;
    var endTime = row.endTime;
    
    //查看按钮
    var detailBtn = "<a class='btn btn-info btn-xs' href='javaScript:void(0);' onclick='toDetail(" + row.id + "," + row.status + ")'>查看</a>";
    //启用按钮
    var enableBtn = "<a class='btn btn-info btn-xs' href='javaScript:void(0);' onclick='updateStatus(" + row.id + ",1)'>启用</a>";
    //停用按钮
    var disableBtn = "<a class='btn btn-danger btn-xs' href='javaScript:void(0);' onclick='updateStatus(" + row.id + ",0)'>停用</a>";
    //编辑按钮
    var editBtn = "<a class='btn btn-info btn-xs' href='javaScript:void(0);' onclick='toEdit(" + row.id + ")'>编辑</a>";
    //删除按钮
    var delBtn = "<a class='btn btn-danger btn-xs' href='javaScript:void(0);' onclick='doDelete(" + row.id + ")'>删除</a>";
    //有权限的按钮
    var btnHtml = detailBtn;
    if (currentTime >= beginTime && currentTime <= endTime) {
        // 生效中
        if (row.status == "0") {
            //生效、停用状态（已暂停）——（查看、启用）
            btnHtml += enableBtn;
        } else if (row.status == "1") {
            //生效、启用状态——（查看、停用）
            btnHtml += disableBtn;
        }
    } else if (currentTime < beginTime) {
        // 未生效
        if (row.status == "0") {
            //未生效、停用状态——（查看、启用、编辑、删除）
            btnHtml += enableBtn + editBtn + delBtn;
        } else if (row.status == "1") {
            //未生效、启用状态——（查看、停用、编辑、删除）
            btnHtml += disableBtn + editBtn + delBtn;
        }
    } else if (currentTime > endTime) {
        // 已失效
        // 只能查看，不需要拼接
    } else {
        // 未匹配的时间状态
        // 只能查看，不需要拼接
    }
    return btnHtml;
}

/**
 * 格式化状态
 * 
 * @Description do-something
 * @author xu_cc
 * @date 创建时间：2017年10月9日 下午7:36:15
 * @param value
 * @param row
 * @param index
 * @returns {String}
 */
function formatStatus(value, row, index) {
    var currentTime = $("#systemTime").val();
    var beginTime = row.beginTime;
    var endTime = row.endTime;
    if (currentTime >= beginTime && currentTime <= endTime) {
        if (value == 0) {
            return "<span class='label label-danger'>已暂停</span>";
        } else {
            return "<span class='label label-warning'>进行中</span>";
        }
    } else if (currentTime < beginTime) {
        return "<span class='label label-success'>未开始</span>";
    } else if (currentTime > endTime) {
        return "<span class='label label-inverse'>已结束</span>";
    } else {
        return '-';
    }
}
/**
 * 修改活动状态
 * @Description do-something
 * @author xu_cc
 * @date 创建时间：2017年10月11日 下午8:49:59
 * @param id
 * @param status
 */
function updateStatus(id, status) {
    showConfirm("确认修改活动状态吗？", function() {
        $.ajax({
            url : rootPath + "/promotion/updateStatus",
            type : "post",
            async : true,
            dataType : 'json',
            data : {
                id : id,
                status : status
            },
            success : function(json) {
                if (json.code == '1') {
                    showSuccess(json.msg, function() {
                        sys.reloadTable('promotionTable');
                    });
                } else {
                    showErr(json.msg);
                }
            }
        });
    });
}

/**
 * 删除活动
 * 
 * @Description do-something
 * @author xu_cc
 * @date 创建时间：2017年9月6日 上午1:31:21
 * @param id
 */
function doDelete(id) {
    showConfirm("活动删除后不可恢复，确定要删除该活动吗？", function() {
        $.ajax({
            url : rootPath + "/promotion/doDelPromotion",
            type : "post",
            async : true,
            dataType : 'json',
            data : {
                id : id
            },
            success : function(json) {
                if (json.code == '1') {
                    showSuccess(json.msg, function() {
                        sys.reloadTable('promotionTable');
                    });
                } else {
                    showErr(json.msg);
                }
            }
        });
    });
}

// 跳转详情页面
function toDetail(id) {
    window.location.href = rootPath + "/promotion/toPromotionDetailPage?id=" + id;
}
// 跳转编辑页面
function toEdit(id) {
    window.location.href = rootPath + "/promotion/toUpdatePromotion?id=" + id;
}
